package controleFerroviario;

import grafico.GraficoListener;
import malhaFerroviaria.Ferrovia;
import utils.Utils;

public class Simulador {
	
	public Simulador getInstance(){
		return this;
	}

	static Ferrovia ferrovia = Ferrovia.getInstance();
	
	public static void main(String[] args){	
		ferrovia.defineCenario(2);
		
		ferrovia.registraTratadorDeEventos(new Controle());
		ferrovia.registraTratadorDeEventos(new GraficoListener());
		
		for (String s : ferrovia.consultaElementos())
			System.out.println("====== ELEMENTOS ======="+s+"******");
		
		// Testando Utils
		Utils u = new Utils();
		System.out.println("Distancia total: " + u.calculaDistanciaTotal("comp01"));
		//ferrovia.frearComposicao("comp02", 10, true);
				
		try{
			ferrovia.simularCenario(0, 1000000);			
		}catch(Exception ee){
//			System.out.println("Exce��o:"+ee.getClass().getName()+"::"+ee.getMessage());
			ee.printStackTrace();
		}
		System.out.println("*=*=*= Fim da Simulacao =*=*=*");

	}

}